case XenbusStateInitialising:
case XenbusStateInitWait:
case XenbusStateInitialised:
- case XenbusStateUnknown:
break;
case XenbusStateConnected:
tpmif_set_connected_state(tp, 0);
break;
+ case XenbusStateUnknown:
case XenbusStateClosed:
- if (tp->is_suspended == 0) {
+ if (tp->is_suspended == 0)
device_unregister(&dev->dev);
- }
xenbus_switch_state(dev, XenbusStateClosed);
break;
}
xenbus_switch_state(dev, XenbusStateClosing);
break;
+ case XenbusStateUnknown:
case XenbusStateClosed:
device_unregister(&dev->dev);
break;
- case XenbusStateUnknown:
- case XenbusStateInitWait:
default:
xenbus_dev_fatal(dev, -EINVAL, "saw state %d at frontend",
frontend_state);
DPRINTK("blkfront:backend_changed.\n");
switch (backend_state) {
- case XenbusStateUnknown:
case XenbusStateInitialising:
case XenbusStateInitWait:
case XenbusStateInitialised:
+ case XenbusStateUnknown:
case XenbusStateClosed:
break;
xenbus_switch_state(dev, XenbusStateClosing);
break;
+ case XenbusStateUnknown:
case XenbusStateClosed:
device_unregister(&dev->dev);
break;
- case XenbusStateUnknown:
- case XenbusStateInitWait:
default:
xenbus_dev_fatal(dev, -EINVAL, "saw state %d at frontend",
frontend_state);
xenbus_switch_state(dev, XenbusStateClosing);
break;
+ case XenbusStateUnknown:
case XenbusStateClosed:
if (be->netif != NULL)
kobject_uevent(&dev->dev.kobj, KOBJ_OFFLINE);
device_unregister(&dev->dev);
break;
- case XenbusStateUnknown:
- case XenbusStateInitWait:
default:
xenbus_dev_fatal(dev, -EINVAL, "saw state %d at frontend",
frontend_state);
xenbus_switch_state(xdev, XenbusStateClosing);
break;
+ case XenbusStateUnknown:
case XenbusStateClosed:
dev_dbg(&xdev->dev, "frontend is gone! unregister device\n");
device_unregister(&xdev->dev);
pcifront_try_disconnect(pdev);
break;
+ case XenbusStateUnknown:
case XenbusStateClosed:
dev_warn(&xdev->dev, "backend went away!\n");
pcifront_try_disconnect(pdev);
/* watch front end for changes */
struct xenbus_watch backend_watch;
- enum xenbus_state frontend_state;
};
static void maybe_connect(struct backend_info *be);
struct backend_info *be = dev->dev.driver_data;
int err;
- be->frontend_state = frontend_state;
-
switch (frontend_state) {
case XenbusStateInitialising:
case XenbusStateInitialised:
be->instance = -1;
break;
+ case XenbusStateUnknown:
case XenbusStateClosed:
device_unregister(&be->dev->dev);
tpmback_remove(dev);
break;
- case XenbusStateUnknown:
- case XenbusStateInitWait:
default:
xenbus_dev_fatal(dev, -EINVAL,
"saw state %d at frontend",
enum xenbus_state result;
int err = xenbus_gather(XBT_NIL, path, "state", "%d", &result, NULL);
if (err)
- result = XenbusStateClosed;
+ result = XenbusStateUnknown;
return result;
}
/**
* Return the state of the driver rooted at the given store path, or
- * XenbusStateClosed if no state can be read.
+ * XenbusStateUnknown if no state can be read.
*/
enum xenbus_state xenbus_read_driver_state(const char *path);